﻿using System;
using DAL;
using VO;
using COMMON;

namespace BLL
{
    public class RegraAtendimentoBLL
    {

        #region Insert
        public static Retorno<RegraAtendimento> Insert(RegraAtendimento obj)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Insere Regra
                objReturn.ID = new RegraAtendimentoDAL().Insert(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Update
        public static Retorno<RegraAtendimento> Update(RegraAtendimento obj)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Altera Regra
                new RegraAtendimentoDAL().Update(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region UpdateStatus
        public static Retorno<RegraAtendimento> UpdateStatus(RegraAtendimento obj)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Altera Status
                new RegraAtendimentoDAL().UpdateStatus(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Delete
        public static Retorno<RegraAtendimento> Delete(int idRegra)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Deleta Regra
                new RegraAtendimentoDAL().Delete(idRegra);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region Select
        public static Retorno<RegraAtendimento> Select(int idRegra = 0)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Lista Campanha
                objReturn.List = new RegraAtendimentoDAL().Select(idRegra);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectAll
        public static Retorno<RegraAtendimento> SelectAll()
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Lista Campanha
                objReturn.List = new RegraAtendimentoDAL().SelectAll();
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region FinalizaAtendimento
        public static Retorno<RegraAtendimento> FinalizaAtendimento(RegraAtendimento obj)
        {
            var objReturn = new Retorno<RegraAtendimento>();
            try
            {
                //Altera Regra
                new RegraAtendimentoDAL().FinalizaAtendimento(obj);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

        #region SelectFeriado
        public static Retorno<Feriado> SelectFeriaddo(string Dia,string Mes)
        {
            var objReturn = new Retorno<Feriado>();
            try
            {
                //Lista Campanha
                objReturn.List = new RegraAtendimentoDAL().SelectFeriado(Dia,Mes);
                objReturn.Error = Enumerator.Error.Success;
                objReturn.Message = "OK";
            }
            catch (Exception ex)
            {
                objReturn.Error = Enumerator.Error.Failed;
                objReturn.Message = ex.Message;
            }
            return objReturn;
        }
        #endregion

    }
}